import time
from selenium.webdriver.common.by import By
from common.Utils import  BlogDriver

class BlogEdit:
    url=""
    driver=""
    def __init__(self):
        self.url="http://8.137.19.140:9090/blog_edit.html"
        self.driver=BlogDriver.driver
        self.driver.get(self.url)
        self.driver.implicitly_wait(2)
    # 正确发布博客（登录状态下）
    def EditSucTestByLogin(self):
        #填写标题
        self.driver.find_element(By.CSS_SELECTOR,"#title").send_keys("自动化创建")
        # 填写博客内容 - 由于填写博客内容的框不是前端编写的，是makedown,不能定位并写入,因为makedown是第三方插件，不能定位
        # 不可编辑，但是可以点击菜单栏
        self.driver.find_element(By.CSS_SELECTOR,"#editor > div.editormd-toolbar > div > ul > li:nth-child(21) > a > i").click()
        # 定位发布文章按钮
        self.driver.find_element(By.CSS_SELECTOR,"#submit").click()
        # 获取第文章的标题，看是不是刚刚发布的
        # 点击之后出现页面的跳转，页面跳转需要加载时间，可能会出现代码执行的速度比页面渲染的速度要快，导致元素查找不到，因此可以添加等待
        # 添加隐式等待和显示等待都可以，任选一个
        # 隐式等待：创建浏览器对象之后就可以加上，因为隐式等待作用再driver整个生命周期
        # 由于新创建的文章是放在最下面的，所以定位不了，要是能放再第一个就可以定位
        # actual=self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(5) > div.title").text
        # assert actual=="自动化测试创建"

        BlogDriver.getScreeShot()

        # 错误发布博客（登录状态下）
    def EditSucTestByFileLogin(self):
        #1.只输入内容，不输入标题，点击发布按钮
        #self.driver.find_element(By.CSS_SELECTOR,"#editor > div.editormd-toolbar > div > ul > li:nth-child(21) > a > i").click()
        #发布
        self.driver.find_element(By.CSS_SELECTOR,"#submit").click()
        time.sleep(1)
        #切换弹窗
        alter=self.driver.switch_to.alert
        alter.accept()
        BlogDriver.getScreeShot()

        # 错误发布博客（未登录状态下）
    def EditSucTestbyNoLogin(self):
        # 注销
        self.driver.find_element(By.CSS_SELECTOR, "body > div.nav > a:nth-child(6)").click()
        # 登录
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container-login > div > h3")
        # 用户名
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container-login > div > div:nth-child(2) > span")
        # 密码
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container-login > div > div:nth-child(3) > span")
        # 提交
        self.driver.find_element(By.CSS_SELECTOR, "#submit")
        BlogDriver.getScreeShot()


# Edit=BlogEdit()
